package base.producer;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;

import java.nio.charset.Charset;

/**
 * 单向发送消息,不关心发送结果,例如：日志发送场景
 * @author: BacHe
 * @email: 1218585258@qq.com
 * @Date: 2020/12/7 23:06
 */
public class OnewayProducer {
    public static void main(String[] args) throws Exception {
        //1.创建消息生产者 producer，并指定生产者组名 group1
        DefaultMQProducer producer = new DefaultMQProducer("group3");
        //2.指定Nameserver地址,集群用分号;隔开 。
        // （注意防火墙要开放指定端口,Nameserver端口9876 ,broker端口10911,broker要设置配置文件启动）
        producer.setNamesrvAddr("192.168.0.88:9876");
        //3.启动producer
        producer.start();

        for (int i = 0; i < 10; i++) {
            //4.创建消息对象，指定主题Topic、Tag 和消息体
            /**
             *参数1：topic主题 （大分类）
             *参数2：tag （小分类）
             *参数3：body （消息内容）
             */
            String body = "rocketmq 单向发送消息 "+i;
            Message message = new Message("topic3","tag3",body.getBytes(Charset.forName("UTF-8")));
            //5.TODO 单向发送消息,不关心发送结果.
            producer.sendOneway(message);
            //睡一下，看到有节奏的输出。
            Thread.sleep(1000);
        }
        //6.关闭生产者producer
        producer.shutdown();
    }
}
